package com.itheima.edu.info.manager.service;

import com.itheima.edu.info.manager.dao.StudentDao;
import com.itheima.edu.info.manager.domain.Student;

public class StudentService {
    //创建库管
    StudentDao dao = new StudentDao();
    public boolean addStudemt(Student stu) {

        //调用库管对象的添加学生方法,将学生对象添加到数组容器
        boolean res = dao.addStudent(stu);
        //将添加的信息返回
        return res;
    }
    //判断学号是否存在
    public boolean isExists(String id) {
        //指挥库管将数据仓库里所有学生信息都拿出来
        //StudentDao dao = new StudentDao();
        Student[] allStudent = dao.findAllStudent();//{null,null,null,null,null}

        //判断库管返回的数组中没有学生的学号和我这次要筛选的学号一致
        //先假设没人学号一样
        boolean exists = false;

        //遍历数组
        for (int i = 0; i < allStudent.length; i++) {
            //拿到每一个学生对象
            Student stu = allStudent[i];
            //当且仅当当前数组索引位置的学生对象不为null,并且这个学号和我们要匹配的学号一致时
            if (stu != null && stu.getId().equals(id)){
                //我们认为这个学号重复了,这个时候修改exists为true
                exists = true;
                break;
            }
        }
        //直接返回exists
        return exists;
    }
    //查看学生方法
    public Student[] findAllStudent() {
        //调用库管对象的findAllStudent获取学生对象数组
        Student[] allStudent = dao.findAllStudent();
        //判断数组中是否有学生信息
        //
        boolean flag = false;
        for (int i = 0; i < allStudent.length; i++) {
            Student stu = allStudent[i];
            if (stu != null){
                flag = true;
                break;
            }
        }
        if (flag){
            return allStudent;
        }else {
            return null;
        }
    }

    //通过学号删除学生
    public void deleteStudentById(String delId) {
        //指挥库管根据学号删除对应学生
       dao.deleteStudentById(delId);
    }

    //修改学生方法
    public void updateStudent(String updateId, Student newStu) {
        dao.updateStudent(updateId,newStu);
    }
}